LANGUAGE: Spanish Β· English
Format your ideas for social media
View Demo βΆ Report a Bug β· Request a Feature
Typerflip arrives to solve a current problem across most platforms: users are forced to create posts, descriptions, bios or other content that often conveys nothing β lacking personality and professionalism β and above all creates friction between the messenger and the receiver. The idea is simple: make the message easier to understand and avoid losing the user's interest.
- Key features
- Quick start
- Local installation
- Formatting guide
- Project structure
- Developer information
- Performance
- Color palette
- Contributing
- License
- Real-time formatting - See changes as you type
- Markdown-like syntax
- 8 formatting types (See)
- Changes are reflected practically instantly.
- Cross-platform compatibility - Checks character limits for each social network
- Twitter/X
- Threads
- Discord
- TikTok
- YouTube
- Mastodon
- Auto-save - Never lose your work
- Content analysis - Useful control metrics
- Overall compatibility
- Paragraphs
- Hashtags
- Mentions
- Emojis
- Reading time
- URLs
- Symbols & emojis - Quick access to special characters
- Template system - Save and reuse your favorite formats
- Default templates for posts and bios
- System to create and edit custom templates
- Write or paste your text into the editor
- Use the formatting shortcuts (See)
- Check compatibility with each platform
- Copy, export, or save your formatted text
In the following comparison you can see the difference between a regular LinkedIn post (left) and the same post using Typerflip (right).
For any local run, clone the repository and be inside its folder:
# Clone the repository and move to its folder git clone https://github.com/Syyysco/Typerflip.git && cd TyperflipThen you can choose one of the following methods:
# Start the server
python3 -m http.server 8080 --bind 0.0.0.0
# Open the browser at the local URL (from terminal) or paste the URL in the browser
chrome http://localhost:8080 # for chrome
edge http://localhost:8080 # for microsoft edge# Install dependencies (won't install system-wide)
npm install
# Build and run
npm run buildNote
- Once the build is created with npm run build it is not necessary to rebuild it to launch the server. You can start the server by running npm run start.
- It is possible to change the default port, automatic browser opening, and other settings from the file
config/build.config.json:"server": { "enabled": true, "port": 8080 }, "autoOpenBrowser": true
| Syntax | Result |
|---|---|
**Text** |
Bold |
*Text* |
Italic |
***Text*** |
Bold italic |
1. Text, 2. Text... |
Numbered list (π.) |
- Text |
Simple list (β’) |
+ Text |
Highlighted list (β) |
`code` or ```block``` |
Inline code / code block (ππππ) |
.. Text, ... Text, etc. |
Indentation (tabulation) |
typerflip/
βββ assets/ # Static resources
β βββ brand/ # Identity resources
β βββ fonts/ # Fonts
βββ css/ # Modular styles
β βββ base/ # Base styles
β βββ components/ # Components
β βββ layout/ # Layout container
β βββ responsive/ # Media queries
β βββ utils/ # Utilities
β βββ main.css/ # Module imports
βββ js/ # JavaScript logic
β βββ components/ # Web components
β βββ config/ # Configuration
β βββ data/ # Modular data
β βββ lib/ # Internal libraries
β βββ services/ # Services
β βββ store/ # Dynamic variables
β βββ utils/ # Utilities
β βββ app.js/ # Main flow
βββ config/ # General configuration
β βββ build.config.json # Build configuration for npm
βββ build.js # Entry point for npm build
βββ package.json # Modules required for npm
βββ manifest.json # Manifest
βββ browserconfig.xml # Tiles & PWA
βββ sitemap.xml # SEO
βββ robots.txt # Indexing instructions
βββ index.html # Entry pointFiles not listed are auxiliary resources (images, specific configurations, or internal scripts).
Important
The app UI is written in Spanish. Below are concrete details about the language of each project element.
- Documentation languages available: English and Spanish (2)
- Main language of the site (text strings, HTML lang, etc.): Spanish
- Language for variables, functions, methods, etc. (CSS, HTML, JS ..): English
- Language for comments: Spanish
- Language for JSDoc: English
-
Development notes: The file
DEVELOPMENT.mdcontains known issues so far and tasks / future ideas. -
ID/Reference system: Problematic, to-be-solved, experimental or provisional snippets (identified) are commented in the source code with a short description and an ID/reference, and later added to the file
DEVELOPMENT.mdfor searching with utilities such asgrep. -
Debug mode available: The file
js/lib/debugSystem.jshandles most logs and provides more complete error, warning and info output.- The traces/logs shown in the console by the debug system will contain relevant information, including the error reference, which will make it easier to search for it within the project.
- It can be enabled/configured from the file
js/config/constants.js. TheAPP_CONFIGobject contains the entire application configuration, including debug mode (disabled by default):DEBUG: { ENABLED: false, SHOW_TIMESTAMP: true, LOG_TO_CONSOLE: true, SHOW_STACK_TRACE: false },
- Basic usage is as follows (also commented at the end of the main file):
// Using the global function debug('error', '001ac5', 'Database connection failed', { host: 'localhost', port: 5432 }); debug('warning', '002bd7', 'API rate limit approaching', { current: 95, limit: 100 }); debug('info', '003ce9', 'User authentication successful', { userId: 12345 }); debug('success', '004df1', 'File upload completed', { filename: 'document.pdf', size: '2.3MB' }); // Using specific methods debugSystem.error('005ef3', 'Validation failed for user input', myObject); debugSystem.warning('006fg5', 'Memory usage high', { usage: '85%', threshold: '80%' }); debugSystem.info('007gh7', 'Cache refreshed successfully'); debugSystem.success('008hi9', 'Backup completed'); // Utilities console.log('Debug Stats:', debugSystem.getStats()); debugSystem.clear(); // Clear logs debugSystem.disable(); // Disable debug
The required parameters are:
- Error type: error, warning, info, success. If left empty, info will be used as default.
- Trace reference: Unique identifier for the trace (ensure it does not already exist). Example: 005tr1.
- Message: Text that will be shown in the console trace. Plain text only (not Object, HTMLElement, etc).
- Additional data: Extra information such as an Object, HTMLElement, etc.
Lighthouse performance audits show a delay on the first meaningful paint which impacts the overall performance score. Even if this doesn't translate directly to perceived usability in all cases, it can affect correct indexing and SEO. This is documented in the development notes and is caused by the initial layout calculation. A fix is planned soon.
| Metric | Score |
|---|---|
| Performance | 82/100 |
| Accessibility | 94/100 |
| Best Practices | 100/100 |
| SEO | 100/100 |
On mobile, performance is affected on the first load due to initial layout calculations (JavaScript) combined with monitoring viewport changes to determine if adjustments are needed. This will be fixed soon.
| Metric | Score |
|---|---|
| Performance | 59/100 |
| Accessibility | 92/100 |
| Best Practices | 100/100 |
| SEO | 100/100 |
| Color | Hex | Uso |
|---|---|---|
| Black | #000000 |
Main background |
| Licorice | #1D0D12 |
Primary accent |
| Dark Gunmetal | #1B212C |
Secondary accent |
| Ghost White | #FAFAFF |
Primary text |
| Independence | #4A5568 |
Accent text |
- Fork the project
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add: AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
Note
For changes or new features remember to add clear instructions. For experimental features or various bugs it is important to document them following the current reference system (both in source code and in the DEVELOPMENT.md file).
This project is under a personal use license. This prohibits any commercial use, inclusion in external projects and redistribution without the express consent of the author. See LICENSE for more details.







