Markdown API

An API to turn an article URL into beautiful markdown without any of the clutter.

  • Removes header, navigation bar, ads, footer
  • Returns the markdown of the rest of the page

Go to

Watch the Archived Stream

Time tracking for the < 24 hours launch

Tracking for 2018-11-17

Not everything written here is set in stone, might be subject to change.

Main Todo List

Before Stream

  • Buy Domain (
  • Setup Droplet
  • Setup https
  • Setup Cloudflare

During Stream


  • Setup Laravel Server
  • Setup landing Page
  • Integrate Laravel with Landing Page

  • Setup REST Api Endpoint
  • Setup REST Service to return full html from url
  • Edit Service to instead return markdown
  • Edit Service to instead return article markdown
  • Bug Fixing generated article #1
  • Better integrate landing page

  • Setup Users

    • Setup Login Page
    • Setup Register Page
    • Generate api key for each user when they register
    • Page to show api keys
    • Regenerate api keys
    • Handle Logout
  • About Page
  • TOS Page
  • Privacy Page

  • Setup Stripe Not mandatory

    • Decide on a pricing model Not mandatory
    • Integrate Stripe with Laravel Cashier Not mandatory
    • Billing Page Not mandatory
    • When registering setup automatic free trial Not mandatory
    • Ability to manually switch to subscription Not mandatory
    • Create subscription on Stripe Not mandatory
  • Bug Fixing generated article #2
  • Change all buttons UI to be the same

  • Newsletter Page Not mandatory
  • FAQ Page Not mandatory
  • Zapier Integration Not mandatory
  • Check servder configuration on Digital Ocean (php-xml, …)
  • Deploy Server to Digital Ocean

Bug Fixing

  • Justify text in TOS and Privacy (now it’s centered)
  • Move top titles 1 line down
  • Remove get api key from login / logout / tos / privacy / about
  • About the site -> put only tiwtter and website at the end and remove info about me
  • make welcome user not clickable
  • Api keys before copy. something like the api key is used in every request to the service and its needed to protect the service from abuse
  • make welcome hover not do anything


  • Twitter
  • PH Not the first day
  • IH Not the first day
  • Not the first day
  • Telegram
  • Slack

After Launch

  • Fix Cron -> Create cron laravel reset api limits end of month (from subscription date) Not mandatory

  • Update Auth to always use middleware
  • Center pricing on mobile
  • Setup sentry for debug
  • Don’t redirect to pricing after login if already subscribed
  • More data for subscribed users

    • Returns Author
    • Returns Images
    • Returns Original HTML
    • Returns Title
  • Rewrite relative URLs
  • Updated API Documentation with more example and details
  • Fixed password reset email

General Info

Still need to figure out

  • Name is enough?

  • Logo A simple M should be fine..?

  • Monetization Does it do too little to be monetized? Can it be usage based?

  • Api Keys I'd love to require API keys. I've seen that free API usually get hammered with requests

Figured out

  • Domain
    Wanted a really simple domain. All md. were taken, but markdown. Had quite a few free. sounded great and was decently priced @ Porkbun.

  • Hosting
    I’m going to use a Digital Ocean droplet and Cloudflare. I’ve already setup https via certbot and a testing page up.

  • Tech Stack
    As I’ve said many times my main goal in this challenge is to learn something new and ship my first web app. I’ve kept my scope pretty limited to be able to do both at the same time.

Backend: Laravel + Mysql
Frontend: Vanilla js (ES6) + Laravel Blade

Ideas - Future

  • Pricing
    Obviously with Stripe. A free tier with limited usage (max xx requests per day/month) and a paid tier with more requests and more data returned in the request. I actually got pricing working on the stream. Still need to implement part 2: more data returned in the request for subscription users. One example would be returning both the markdown and the html of the article or parsing the author name and the publish date.

  • Crawl Ability to have a crawler and get all articles on a site (within reason)


If you have any feedback you can let me know on twitter or via email


Valentino Urbano

iOS Developer, Swift, Writer, Husband

Back to Overview