Skip to main content

Solveblog

Solveblog provides the easiest way to build a blog in solveit. You can edit your dialogs in solveit and they’ll appear in your blog immediately.

Markdown messages are shown as regular text. Code, Prompt, and Raw messages and their outputs are presented in nicely formatted fences.

Getting started

In SolveIt:

  1. Create an empty dialog in a new folder for your blog project
  2. Run !pip install solveblog to install this package
  3. Run solveblog_new() with your information:
from solveblog import * 
solveblog_new(
    name='Your Name', # Your name
    port=8000,        # Port to serve on
    email='',         # Your email (optional)
    description='',   # RSS feed description (optional)
    github='',        # GitHub handle (optional)
    twitter='',       # Twitter/X handle (optional)
    linkedin='',      # LinkedIn handle (optional)
)
  1. Run !solveblog to serve your blog. The url will be printed immediately after running the command

Writing posts

You can add your own posts by adding them to public/posts/. Posts can be markdown files (.md) or solveit dialogs (.ipynb). Posts are expected to start with metadata as yaml frontmatter. In solveit dialogs these are expected to be as the first message (raw format). You can find an example post in public/posts/ after running solveblog_new().

---
title: Test Notebook Post
date: 2026-04-05
tags:
  - test
---

Writing pages

You can add your own pages by adding them to public/pages/. Pages can also be markdown files (.md) or solveit dialogs (*.ipynb). Page filenames are split on underscore (_) and the prefix is used as the sorting key. You can find an example 1_about.ipynb page after running solveblog_new().

Autorun

If you run solveblog in a terminal window it’ll run until you close the tab. To keep it running you might want to create a dialog in the AUTORUN folder (create it if it doesn’t exist). Dialogs in that folder will automatically run upon instance start, and are exempted from idle shutdown. In other words: they’ll keep running. In that dialog put a code message with the following:

!cd <your-project-dir> && solveblog

Custom domains

SolveIt supports custom domains. To make use of this feature:

  1. Go to your instance settings menu in the SolveIt dashboard, and follow the instructions to update the domain:port mapping.
  2. Updatesolveblog_settings.py with the chosen port.
  3. Configure the DNS of your custom domain to point to solve.it.com (see below)

DNS setup

For subdomains (e.g., app.example.com): Create a CNAME record pointing to solve.it.com.

For apex/root domains (e.g., example.com): Standard CNAME records won’t work. You need a provider that supports CNAME flattening or ALIAS records:

Provider Record Type
Cloudflare CNAME (auto-flattened at apex)
AWS Route 53 ALIAS
Azure DNS Alias
DNS Made Easy ANAME
DNSimple ALIAS
Namecheap ALIAS
Porkbun ALIAS

[!TIP]

We recommend Cloudflare for DNS—just create a CNAME at the apex and it handles flattening automatically.

[!WARNING]

GoDaddy does not support CNAME flattening. Use a subdomain or switch DNS providers.

DNS changes can take up to 48 hours to propagate, though they often take effect much sooner.

Credits

Inspired by the beautiful personal website of Jack Hogan: jackhogan.net

Release files for solveblog 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for solveblog 0.0.1
File Size Uploaded
solveblog-0.0.1.tar.gz 1.6 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for solveblog 0.0.1
File Interpreter ABI Platform
solveblog-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 3.1 MB

Release files / solveblog-0.0.1.tar.gz

Download URL solveblog-0.0.1.tar.gz
Size 1.6 MB
Tags Source
SHA-256 checksum
How to use checksums
674ad37d3c66757a3354ae7c7fd03505d1cda112b6000b09c5fff45490fcfcde
BLAKE2b-256 checksum
How to use checksums
b0cf275a1fc1628875772587f3a5a62b410a27f2cebfd65e11ff5b1bb45d1a64
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release files / solveblog-0.0.1-py3-none-any.whl

Download URL solveblog-0.0.1-py3-none-any.whl
Size 1.6 MB
Tags Python 3
SHA-256 checksum
How to use checksums
82d0df4553edf1f0f1ef8730c8b1d9888e8783b0663852eef208dffdcd9c099c
BLAKE2b-256 checksum
How to use checksums
b27486a279a5f77082b73806ca678802e2f9f456e7ad7a2535016f7abbdeb39e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.5

Release history Release notifications | RSS feed

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page