https://evidence.dev logo
Join Slack
Powered by
# general
  • a

    ancient-butcher-87124

    02/28/2025, 3:37 PM
    Can anyone here help me how I can read Json field ? Json_from_string gives error
  • r

    rhythmic-winter-76521

    03/01/2025, 1:27 PM
    What an incredible tool Evidence is! Being able to deploy beautiful charts to a static host with so little work. Magical
    💯 2
    g
    • 2
    • 1
  • b

    brave-garden-34482

    03/03/2025, 3:33 AM
    Does Evidence support embedding as a 3rd party software? can i embed it through iframe? and what is the embedding limit?
    b
    • 2
    • 4
  • b

    blue-shoe-54123

    03/04/2025, 1:34 AM
    Super janky, still working on it but I wanted to show yall something I’m working on for my place of business! It’s my first production use of Evidence, built a whole data pipeline using our Square sales data Super excited about it
    g
    • 2
    • 2
  • b

    brash-painter-16500

    03/04/2025, 2:21 AM
    Have you deployed it to Linux ?
  • g

    gorgeous-engine-26141

    03/04/2025, 2:08 PM
    Is it possible to choose which pages to show here (see attached image)? For example, let's say I want to hide these two, but I want to show a third one I haven't created yet.
    b
    • 2
    • 9
  • e

    elegant-library-40999

    03/04/2025, 2:35 PM
    Why does Evidence not provide a public only way to connect with GitHub?
    b
    h
    • 3
    • 4
  • c

    careful-notebook-54211

    03/04/2025, 6:02 PM
    Hi friends 👋, is it possible to include/interpolate a Value component into the title.text property of an Echarts component config? (Or if not a Value component specifically, otherwise include the results of a query in title.text?) I'm hoping to make the title of a donut chart include the total revenue for all displayed categories with a Value component. Thanks in advance for your consideration, appreciate it.
    b
    • 2
    • 2
  • w

    worried-photographer-57480

    03/04/2025, 6:07 PM
    Hi 👋 could somebody explain a bit how to update data on a regular base or does evidence support live connection to the data? As I understood today it is only ci cd based updates so if I need new data I should make a cron job or etc to push Ci cd pipeline. Am I correct? 🙏
    ✅ 1
    c
    b
    • 3
    • 3
  • e

    enough-activity-13508

    03/04/2025, 7:25 PM
    Hey, so what are the best practices for keeping an evidence project working? Multiple times I have had to use the npx command to bootstrap a new project and copy over my existing sources and pages folders. In my most recent problem I kept getting an error related to evidence big query that wouldn't work. The same error would occur when trying npm install @evidence-dev/evidence@latest @evidence-dev/core-components@latest, so i eventually had to make a new one
    e
    • 2
    • 1
  • h

    handsome-nightfall-65913

    03/05/2025, 8:08 AM
    hey, wanted to ask is there any way to change the color for the columns in datatable dynamically if i switch to dark mode or light mode ?
    b
    • 2
    • 2
  • e

    enough-activity-13508

    03/05/2025, 6:29 PM
    Started doing some PoC work of building a python wrapper over evidence to act as a programmatic pages generator. Has some trouble with some advanced stuff and not perfect, but def promising and works after very little time spent. Would this be interesting to anyone? Some of main motivation behind doing this is 1. Chat LLMs struggle with directly providing markdown because printing markdown completely wrecks their natural markdown rules, so have them make python 2. Been struggling with needing to update my evidence constantly so was exploring simply bootstrapping a fresh template each time and programmatically adding the sources and pages
    👀 2
    w
    n
    b
    • 4
    • 3
  • n

    nice-country-82959

    03/05/2025, 11:36 PM
    I love evidence. I am trying to build a chat into it that calls a google cloud function, gets back a string rendered as an evidence.dev page, and then the frontend renders it properly. I am struggling to render it properly without just rendering a json like this in svelte.
    Copy code
    {
                type: 'chart',
                chartType: 'LineChart',
                props: {
                    data: customChartData, // Use the custom data instead of imported data
                    x: 'ISOWeek',
                    y: 'Cases',
                    title: 'Cool right?',
                    series: 'DataType',
                    chartAreaHeight: 300,
                    echartsOptions: {
                        xAxis: {
                            min: 1,
                            max: 10
                        }
                    }
                }
            },
            {
                type: 'text',
                content: 'Test please work'
            }
    Copy code
    {#if showChart}
        {#each messages as message}
            {#if message.type === 'text'}
                <p>{message.content}</p>
            {:else if message.type === 'chart' && components[message.chartType]}
                <svelte:component this={components[message.chartType]} {...message.props} />
            {/if}
        {/each}
    {/if}
    I am really excited about the direction of this. I'm working to try to make AI generated dashboards.
    b
    m
    • 3
    • 3
  • n

    nice-country-82959

    03/05/2025, 11:37 PM
    Also, I don't understand evidence.dev pricing. I would much rather host on evidence, but paying $15 per month per viewer is wild when you can just use netlify with password protection for as many people as you want for $19 per month with only a slightly longer set-up process.
    b
    • 2
    • 1
  • l

    lemon-crayon-44298

    03/08/2025, 11:49 AM
    I had the same issue with Cloudflare's maximum of 25MB and I saw @few-megabyte-66980 message. It worked, but was quite slow since it would download 50mb of files each refresh. I did the following: 1. I download the two duckdb wasm files, compressed them using Brotli (you can also use gzip). 2. Created a Cloudflare R2 bucket and a Cloudflare Worker, worker.js
    Copy code
    export default {
        async fetch(request, env, context) {
          try {
            const url = new URL(request.url);
            const path = url.pathname.slice(1); // Remove leading slash
    
            // The bucket only has these files anyway.
            const allowedWasmFiles = [
              'duckdb-mvp.DuKjbjvP.wasm',
              'duckdb-eh.DrTJ_0hP.wasm'
            ];
            
            if (!allowedWasmFiles.includes(path) && !path.endsWith('.wasm')) {
              return new Response("Not found", { status: 404 });
            }
    
            // Check what compression formats the client supports
            const acceptEncoding = request.headers.get('Accept-Encoding') || '';
            let objectKey = path;
            let contentEncoding = null;
            let compressionType = 'none'; // Track for cache key
            
            // Try Brotli first (better compression) if client supports it
            if (acceptEncoding.includes('br')) {
              const brKey = `${path}.br`;
              const brObject = await env.WASM_BUCKET.head(brKey);
              
              if (brObject) {
                objectKey = brKey;
                contentEncoding = 'br';
                compressionType = 'br';
                console.log(`Using Brotli compressed version: ${brKey}`);
              }
            }
            
            // Create a compression-specific cache key
            const cacheKeyUrl = new URL(url);
            cacheKeyUrl.searchParams.append('compression', compressionType);
            const cacheKey = new Request(cacheKeyUrl.toString(), request);
            const cache = caches.default;
            
            // Try to get from cache first
            let response = await cache.match(cacheKey);
            if (response) {
              console.log(`Cache hit for: ${cacheKeyUrl} (${compressionType})`);
              return response;
            }
            
            // If not in cache, fetch from bucket
            console.log(`Cache miss for: ${cacheKeyUrl}, fetching from bucket`);
            const object = await env.WASM_BUCKET.get(objectKey);
            if (!object) {
              return new Response("File not found", { status: 404 });
            }
            
            // Set appropriate headers
            const headers = new Headers();
            headers.set('Content-Type', 'application/wasm');
            headers.set('Access-Control-Allow-Origin', '*');
            
            // If we're serving a compressed version, add Content-Encoding header
            if (contentEncoding) {
              headers.set('Content-Encoding', contentEncoding);
            }
            
            // Cache control headers
            headers.set('Cache-Control', 'public, max-age=86400');
            headers.set('ETag', object.httpEtag);
            
            // Additional security/performance headers
            headers.set('Timing-Allow-Origin', '*');
            headers.set('X-Content-Type-Options', 'nosniff');
            
            // Create the response
            response = new Response(object.body, { headers });
            
            // Store in cache with compression-specific key
            context.waitUntil(cache.put(cacheKey, response.clone()));
            
            return response;
          } catch (e) {
            console.error(`Error: ${e.message}`);
            return new Response('Error thrown: ' + e.message, { status: 500 });
          }
        }
      };
    and a wrangler.toml in the same folder as above file
    Copy code
    name = "wasm-server"
    main = "worker.js"
    compatibility_date = "2023-10-01"
    
    [[r2_buckets]]
    binding = 'WASM_BUCKET'
    bucket_name = 'TODO_CHANGE_TO_BUCKET_NAME'
    You just need to modify TODO_CHANGE_TO_BUCKET_NAME to the name of your bucket. I put the compressed files, and the non compressed files in the aforementioned bucket and spin a worker. Then lastly, change and add following in package.json:
    Copy code
    "build": "evidence build && npm run fix-wasm",
        "fix-wasm": "sed -i \"s|/_app/immutable/assets/|<https://URL_OF_YOUR_WORKER.workers.dev/%7Cg>\" \"build/_app/immutable/chunks/\"*.js && rm \"build/_app/immutable/assets/duckdb-\"*.wasm"
    In the end, download is very fast, pretty much instant.
    🙌 1
    🙌🏼 1
  • m

    many-jackal-21269

    03/08/2025, 11:17 PM
    Does anyone perhaps know why when running
    npm run dev
    my screen looks like this?
    l
    h
    • 3
    • 5
  • f

    faint-intern-10806

    03/10/2025, 9:30 AM
    Hi all 👋 As there’s no #i-made-this, I’m sharing here instead, in case this could any helpful for any of you. I did a small write-up / demo about how I use Evidence for creating Metric Sheets for our monthly reporting. It’s just a basic table, but it’s pretty clean, and easy for stakeholders across the company to understand and use 😊 LinkedIn Post Substack Post Metric Sheet Demo on Github Pages Github Repo
    🙌🏼 1
    🙌 5
    g
    b
    +2
    • 5
    • 14
  • g

    gorgeous-engine-26141

    03/10/2025, 8:33 PM
    Is there an issue with
    AreaMap
    , or is it just me? I've been testing a few different maps, and I don't seem to be able to get evidence to render any
    AreaMap
    . I'm only able to generate
    PointMap
    . All my
    AreaMap
    look like this:
    ✅ 1
    b
    • 2
    • 3
  • j

    jolly-apartment-92631

    03/11/2025, 3:33 PM
    As the number of users grow along with requests for bespoke pages, so does the build time. My understanding is that every run the entire website is regenerated. How can I parallelize the webpage building so it can potentially be distributed across more CICD workers? Or what other best practices exist to keep the build time to a minimum?
    b
    b
    • 3
    • 5
  • f

    flaky-alarm-54453

    03/11/2025, 6:06 PM
    Hi All. I was wondering if Evidence uses or could use DuckDB 1.2.1 and if it comes with sensible performance improvementes
    b
    • 2
    • 2
  • b

    blue-shoe-54123

    03/12/2025, 3:33 AM
    Hey Y’all: Update: I officially deployed my project to production. Got to present this for the first time at our worker owned coffeeshop’s general business meeting. Got a lot of great reviews and essentially got buy in to keep working on this. Excited to see the impact it can have on our business strategy!
    🔥 6
    i
    • 2
    • 4
  • j

    jolly-nest-92859

    03/12/2025, 5:14 AM
    I finally did it! (Okay, I confess, Claude Sonnet 3.7 did it. ) Still, It may seem simple, but as someone who isn’t a FrontEnd Developer, this was a challenge for me. I implemented annotations to highlight anomalies based on my Time Series Anomaly Detection model. The upper bound anomalies are marked in green, the lower bound in red, and all other data points remain unmarked. Here is how I did it. Might not be the ideal way, but it worked. Is there a better way?
    Copy code
    <LineChart data={just_anomaly_ad_views} x="Day" y={["lower_bound","Ads_in_View","upper_bound"]} colorPalette={["lightgrey","#0D0D0D","lightgrey"]}>
    {#each just_anomaly_views as anomaly}
    <ReferencePoint x={anomaly.Day} y={anomaly._in_View} symbolSize={anomaly.is_anomaly ? 10 : 0} label={anomaly.is_anomaly ? 'Anomaly' : ''} labelPosition="bottom" color={anomaly.is_anomaly ? (anomaly.in_View < anomaly.lower_bound ? "negative" : "positive") : "#f2dbff"}/>
    {/each}
    </LineChart>
    🙌 1
  • h

    hallowed-notebook-46272

    03/12/2025, 7:22 AM
    Hi @bright-smartphone-11251, This might be the same question as asked by @elegant-library-40999, or at least related. When connecting Evidence Cloud to a single github repository, I thought there might be a difference between public and private repos. It seems not. With both, Evidence Cloud is asking for write access to the code. In theory, that means that Evidence Cloud could change my queries and thus gain access to sensitive personal data. I'm not sure I understand why it needs to be able to write as well as read?
    • 1
    • 1
  • h

    handsome-nightfall-65913

    03/13/2025, 4:37 AM
    so i am having issue uploading image to evidence from local file, like when i use the path from my folder the image is not displayed and i don't want to use URL, also i have tried making a static folder and uploaded image in that folder but still the image is not being displayed.
    e
    • 2
    • 2
  • n

    narrow-spoon-89545

    03/13/2025, 9:17 AM
    Team, I have self hosted evidence on a server. Overtime the memory usage on the machine increases drastically and the instance crashes due to out of memory issues. Can you please suggest some tips on how to handle this?
    b
    • 2
    • 1
  • j

    jolly-nest-92859

    03/14/2025, 1:49 AM
    Is there a simple way to track the usage analytics of the reports built in?
    b
    d
    m
    • 4
    • 5
  • g

    gorgeous-engine-26141

    03/14/2025, 1:15 PM
    Is there a way to change the shape of a point in
    PointMap
    ? https://docs.evidence.dev/components/maps/point-map/
    b
    • 2
    • 2
  • l

    lemon-coat-55573

    03/14/2025, 4:40 PM
    Hi, can Calendar heatmap be set up to use string categories for color-picking, or is it only possible to use numeric values for the color scale?
  • s

    stocky-advantage-3793

    03/16/2025, 8:20 PM
    Hello everyone. Anybody ever managed to host Evidence on a IBM/HCL Domino Server?
  • s

    silly-football-39744

    03/17/2025, 2:57 PM
    Seems like i messed up something while trying to upgrade my app. It appears I've lost most or all of my CSS.. I had no customizations, is there an easy way to restore to defaults?