Craft and publish engaging content in an app built for creators.
NEW
Publish anywhere
Post on LinkedIn, Threads, & Mastodon at the same time, in one click.
Make it punchier 👊
Typefully
@typefully
We're launching a Command Bar today with great commands and features.
AI ideas and rewrites
Get suggestions, tweet ideas, and rewrites powered by AI.
Turn your tweets & threads into a social blog
Give your content new life with our beautiful, sharable pages. Make it go viral on other platforms too.
+14
Followers
Powerful analytics to grow faster
Easily track your engagement analytics to improve your content and grow faster.
Build in public
Share a recent learning with your followers.
Create engagement
Pose a thought-provoking question.
Never run out of ideas
Get prompts and ideas whenever you write - with examples of popular tweets.
@aaditsh
I think this thread hook could be improved.
@frankdilo
On it 🔥
Share drafts & leave comments
Write with your teammates and get feedback with comments.
NEW
Easlo
@heyeaslo
Reply with "Notion" to get early access to my new template.
Jaga
@kandros5591
Notion 🙏
DM Sent
Create giveaways with Auto-DMs
Send DMs automatically based on engagement with your tweets.
And much more:
Auto-Split Text in Posts
Thread Finisher
Tweet Numbering
Pin Drafts
Connect Multiple Accounts
Automatic Backups
Dark Mode
Keyboard Shortcuts
Creators love Typefully
170,000+ creators and teams chose Typefully to curate their Twitter presence.
Marc Köhlbrugge@marckohlbrugge
Tweeting more with @typefully these days.
🙈 Distraction-free
✍️ Write-only Twitter
🧵 Effortless threads
📈 Actionable metrics
I recommend giving it a shot.
Jurre Houtkamp@jurrehoutkamp
Typefully is fantastic and way too cheap for what you get.
We’ve tried many alternatives at @framer but nothing beats it. If you’re still tweeting from Twitter you’re wasting time.
DHH@dhh
This is my new go-to writing environment for Twitter threads.
They've built something wonderfully simple and distraction free with Typefully 😍
Santiago@svpino
For 24 months, I tried almost a dozen Twitter scheduling tools.
Then I found @typefully, and I've been using it for seven months straight.
When it comes down to the experience of scheduling and long-form content writing, Typefully is in a league of its own.
Luca Rossi ꩜@lucaronin
After trying literally all the major Twitter scheduling tools, I settled with @typefully.
Killer feature to me is the native image editor — unique and super useful 🙏
Visual Theory@visualtheory_
Really impressed by the way @typefully has simplified my Twitter writing + scheduling/publishing experience.
Beautiful user experience.
0 friction.
Simplicity is the ultimate sophistication.
Queue your content in seconds
Write, schedule and boost your tweets - with no need for extra apps.
Schedule with one click
Queue your post with a single click - or pick a time manually.
Pick the perfect time
Time each post to perfection with Typefully's performance analytics.
Boost your content
Retweet and plug your posts for automated engagement.
Start creating a content queue.
Write once, publish everywhere
We natively support multiple platforms, so that you can expand your reach easily.
Check the analytics that matter
Build your audience with insights that make sense.
Writing prompts & personalized post ideas
Break through writer's block with great ideas and suggestions.
Never run out of ideas
Enjoy daily prompts and ideas to inspire your writing.
Use AI for personalized suggestions
Get inspiration from ideas based on your own past tweets.
Flick through topics
Or skim through curated collections of trending tweets for each topic.
Write, edit, and track tweets together
Write and publish with your teammates and friends.
Share your drafts
Brainstorm and bounce ideas with your teammates.
NEW
@aaditsh
I think this thread hook could be improved.
@frankdilo
On it 🔥
Add comments
Get feedback from coworkers before you hit publish.
Read, Write, Publish
Read, WriteRead
Control user access
Decide who can view, edit, or publish your drafts.
🍪 Svelte Snacks. Todays episode, updating a variable/state management. One of the things that draws me to this language is the fact that it attempts to stay as close to vanilla as possible while thoughtfully abstracting out things we do everyday in web dev.
A lot of times in UI dev, we need to capture data from the user. Here's an example of a .svelte file that binds the input value to state. In Svelte, things defined in the script tag are accessible in the template using {curly brackets}. You can also put any JS expression in {}s
In the above example, whenever a user adds text to that input field, it will automatically be assigned to the "value" variable. And notice the reference to {value} in our template? That <p> tag will contain the <input> text and auto update whenever it changes.
Go try it! You can also have an object and then bind <input/>s to object properties of course. It's all just variable references in the end and Svelte will follow all of them for you and update only the things that need to be updated. svelte.dev/repl/7f4f52bc9195455ead9e4f78d3f12e1e?version=3.55.1
This is great for local state. A user could fill out a form with all of their values and then in this component we could have a submit function that sends it all off. But what about global state? Can we really manage app state with these simple patterns? Probably 🤷🏼♂️
For global state, Svelte has "stores". A store is just a normal JavaScript variable with the added benefit of being able to subscribe to it. If the a store value is ever changed in one place, all other things/components using the store will also be refreshed.
Bear with me for a sec, this isn't the most common usage of accessing stores but I want to explain how they work and why they work so well in Svelte. When you Create a store and import it, you have the following methods. .set(), .update(), .subscribe().
See that subscribe method at the bottom? This pattern of a .subscribe() method that takes a callback that gets the value as the first arg isn't unique to Svelte and often used in subscription models. Svelte adheres to these standards
and adds a cool abstraction to these subscription patterns to tap into them, the "$". In .svelte files you can prefix stores with $ which stands for "subscribe, get the value, unsubscribe, give me the value". Allowing you to use stores like normal variables. These are the same.
You can use this with other frameworks too that use this pattern like XState. You could use Svelte's $ on that "service" instance to get the value of the state machine and subscribe to it like a store value.
Any component in our app can import user store and read whatever the value is with "$". You can even set it or bind to it like any normal variable making them uber convenient.
Stores are great, but there isn't really a state management framework in place. Svelte is BYOS (state manager). For most small projects stores are all you will need. You could even organize them with a nice map and add setters and getters to keep it all clean and roll your own.
When you setup tRPC in SvelteKit, there's also this available library called trpc-svelte-query-adapter which lets us combine SvelteQuery and tRPC to create queries that are mapped to tRPC endpoints. This lets us import queries and "$" them to get data, no more "fetch()" + typed.
The above is an example of a get price endpoint and how you could use it in Svelte with this setup, so clean! When you subscribe to that query store it will fetch data if it doesn't have it or reuse existing if it does. you can also query.load() to manually refetch at any time.
Thanks for reading! LMK if you have any questions or ways to do it better. Happy building 🚀
Meh Discord discord.gg/rQt2Y59pz7